Note: This tutorial assumes that you have completed the previous tutorials: smart_arm_controller/Tutorials/Getting Started with a Smart Arm.
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

How to control a Crust Crawler Smart Arm with Dual Gripper using the smart_arm_controller

Description: This tutorial describes how to control your Crust Crawler Smart Arm using the smart_arm node.

Tutorial Level: BEGINNER

Compiling

First, you need to compile all dependencies, ensuring all ROS msgs are generated.

$ rosmake smart_arm_controller

Running

Make sure all the parameters in the smart_arm.yaml file match your hardware configuration (see the first tutorial). Launch the smart arm controller:

$ roslaunch smart_arm_controller smart_arm.launch 

Sending Commands to Move Smart Arm Joints

Each joint controller in the yaml file will subscribe to a command topic to move that joint: shoulder_pan_controller, shoulder_pitch_controller, elbow_flex_controller, wrist_roll_controller, right_finger_controller and left_finger_controller

Here are some examples (all angles are in radians):

$ rostopic pub -1 /wrist_roll_controller/command std_msgs/Float64 -- 2

$ rostopic pub -1 /elbow_flex_controller/command std_msgs/Float64 -- -3

Each controller will also be able to call the Services created by the controller manager. Here are some examples of calling Services and setting new values for various joints:

$ rosservice call /wrist_roll_controller/torque_enable 1

$ rosservice call /shoulder_pitch_controller/set_speed 2.5

Wiki: smart_arm_controller/Tutorials/Controlling a Smart Arm (last edited 2011-09-10 16:37:11 by AntonsRebguns)